方法的重载
在 C# 中,方法的重载(Method Overloading)指的是定义在同一个类中,方法名相同但参数类型、参数数量或参数顺序不同的多个方法。重载方法的调用会根据传入的实参类型、数量和顺序,自动匹配最合适的方法进行调用。
public class Calculator
{
/// <summary>
/// 加法,参数为两个整型参数
/// </summary>
public int Add(int a, int b)
{
return a + b;
}
/// <summary>
/// 重载的加法,参数为 double 类型
/// </summary>
public double Add(double a, double b)
{
return a + b;
}
/// <summary>
/// 重载的加法,参数为三个整型参数
/// </summary>
public int Add(int a, int b, int c)
{
return a + b + c;
}
/// <summary>
/// 重载的加法,参数为一个整型数组
/// </summary>
public int Add(int[] arr)
{
int sum = 0;
foreach (int num in arr)
{
sum += num;
}
return sum;
}
}
上述代码定义了一个计算器类 Calculator,其中有四个方法重载了 Add 方法,分别为:
- 接收两个整型参数的
Add方法; - 接收两个 double 类型参数的
Add方法; - 接收三个整型参数的
Add方法; - 接收一个整型数组参数的
Add方法。
class Program
{
static void Main(string[] args)
{
Calculator calculator = new Calculator();
int result1 = calculator.Add(1, 2); // 调用接收两个整型参数的 Add 方法
Console.WriteLine(result1); // 输出:3
double result2 = calculator.Add(1.1, 2.2); // 调用接收两个 double 类型参数的 Add 方法
Console.WriteLine(result2); // 输出:3.3
int result3 = calculator.Add(1, 2, 3); // 调用接收三个整型参数的 Add 方法
Console.WriteLine(result3); // 输出:6
int[] arr = { 1, 2, 3, 4, 5 };
int result4 = calculator.Add(arr); // 调用接收一个整型数组参数的 Add 方法
Console.WriteLine(result4); // 输出:15
}
}
从上述示例代码可以看出,通过方法重载,我们可以在同一个类中定义多个同名方法,使得这些方法可以处理不同类型和数量的参数。在调用重载方法时,编译器会根据传入的参数类型和数量自动选择最匹配的方法进行调用。这样可以增强代码的可读性和可维护性。